﻿namespace WayneGameSolution.Construct
{
    using System;
    using System.Collections.Generic;
    using WayneGameSolution.Membership;
    using WayneGameSolution.Services;

    public interface IArea : IServicePart
    {
        void AreaCreatePairPathWay(IArea targetArea, PathWayAxis axis, PathWayDirection targetDirection);
        void PathDemount(IPathWay path);
        void PathMount(IPathWay path);
        void UserJoin(IUser user);
        void UserLeave(IUser User);

        IAreaFactory ChildAreaFactory { get; }

        DateTime CreateTime { get; }

        string ID { get; }

        int MaxUser { get; }

        string Name { get; }

        IEnumerable<IPathWay> this[PathWayAxis axis, PathWayDirection direction] { get; }

        IDictionary<string, IUser> Users { get; }
    }
}

